package com.example.behaviorpattern.memento.whitebox;

import lombok.Getter;
import lombok.Setter;

/**
 * Originator（原发器类）
 *
 * @author yaojianfeng
 */
@Setter
@Getter
public class Originator {
    /**
     * 状态
     */
    private String state;

    /**
     * 创建备忘录对象，保存当前状态
     *
     * @return 备忘录对象
     */
    public Memento createMemento() {
        return new Memento(this.state);
    }

    /**
     * 根据备忘录对象恢复状态
     *
     * @param memento 备忘录对象
     */
    public void rollbackNextMemento(Memento memento) {
        this.state = memento.state();
    }
}